package br.com.sca.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import br.com.sca.dao.UsuarioDao;
import br.com.sca.entity.Usuario;
import br.com.sca.exception.ServiceException;
import br.com.sca.service.UsuarioService;

@Service("usuarioService")
public class UsuarioServiceImpl implements UsuarioService {

	@Autowired
	private UsuarioDao usuarioDao;

	@Override
	@Transactional
	public void persistirEntidade(Usuario usuario) throws ServiceException {
		try {
			usuarioDao.persistirEntidade(usuario);
		} catch (Exception e) {
			e.printStackTrace();
			throw new ServiceException(e.getMessage());
		}
	}

	@Override
	@Transactional
	public void excluirEntidade(Usuario usuario) throws ServiceException {
		try {
			usuarioDao.excluirEntidade(usuario);
		} catch (Exception e) {
			e.printStackTrace();
			throw new ServiceException(e.getMessage());
		}
	}

	@Override
	@Transactional
	public List<Usuario> getAll() throws ServiceException {
		try {
			return usuarioDao.getAll();
		} catch (Exception e) {
			e.printStackTrace();
			throw new ServiceException(e.getMessage());
		}
	}

	@Override
	@Transactional
	public Usuario pesquisarPorId(Usuario usuario) throws ServiceException {
		try {
			return usuarioDao.pesquisarPorId(usuario.getId());
		} catch (Exception e) {
			e.printStackTrace();
			throw new ServiceException(e.getMessage());
		}
	}

	@Override
	@Transactional
	public void updateEntidade(Usuario usuario) throws ServiceException {
		try {
			usuarioDao.updateEntidade(usuario);
		} catch (Exception e) {
			e.printStackTrace();
			throw new ServiceException(e.getMessage());
		}

	}

}
